function asynchHandlerClass ()
{
	this.http = "";
	this.eventSink = "";
	this.receivedData = "";
	this.IsBusy=false;

	this.sendHttpRequest = 
		function (method, url)
		{	// Make sure we have a post method defined
			if (method.toUpperCase() != "POST")
				method = "GET";
			this.http.open(method, url, true);
			//Register the call back here (could be over-ridden)
			this.http.onreadystatechange = this.InternalCallBack; 
			this.http.send(null);
		}

	this.InternalCallBack = 
		function ()
		{	// Call from the http objects (beware of stack pointer info)
			if (this.readyState == 4) {
				this.receivedData = this.responseText;
				this.IsBusy=false;
				this.eventSink();
			}
		}
	    
	this.getHttpObject = 
		function  ()
		{
			var xmlhttp = new XMLHttpRequest();
			return xmlhttp;
		}

	this.init = 
		function ()
		{
			if (this.IsBusy == false) {
				this.IsBusy = true;
				this.http = "";
				this.eventSink = "";
				this.receivedData = "";
				this.http = this.getHttpObject();
			} else {
				return "ASYNC_H_ERR_BUSY";
			}
		}

	this.setEventSink = 
		function (callbackFunction){
			this.eventSink = callbackFunction;
		}
}